#ifndef __TP6_H__
#define __TP6_H__
#include <vector>
#include <ImageRgb.h>
#include <ImageGray.h>


using namespace Torch;


class Process 
{
public:
	ImageRgb* image_in;
	char* file_name;
	Image *binaryImage;
	ImageRgb *imageDilate;
	ImageRgb *imageErode;
	int **label;
	
	int number;
	//cette variable doit contenir l'image originale transformee en gris
	ImageGray* imageGray;
	
	char* newName(char*oldname,char*additionName);
	int longueur(char* chaine);
	
	//segmente l'image et met le resultat 
	//d'entree l'image resultat est dans image
	void segmentation(ImageRgb*image);
	
	void init();
	
	bool checkimage(Image *img);

	//void(ImageRgb * )
	void dilatation(ImageRgb *imageBin);
	void erode(ImageRgb *imageErode);

	//presente un seul objet sur l'image 
	void buildIndividual();

	bool topDown2(bool perfom);

	bool downtop2(bool perfom);

	void imageLabelling();

	//cette fonction cree l'image dont les contours de chaque objets sont determinees
	void buildImage();

	void freeSpace();
	
	//constructeur	
	Process(char*file_name);
	~Process();
	

};




#endif /* IMAGETP6_H_ */
